package com.yehangtech.designpattern.行为型_状态模式.service;


import com.yehangtech.designpattern.行为型_状态模式.entity.Result;

/**
 * 状态抽象类
 */
public abstract class State {
    /**
     * 活动提审
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result arraignment(String activityId, Enum<Status>
            currentStatus);

    /**
     * 审核通过
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result checkPass(String activityId, Enum<Status>
            currentStatus);

    /**
     * 审核拒绝
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result checkRefuse(String activityId, Enum<Status>
            currentStatus);

    /**
     * 撤审撤销
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result checkRevoke(String activityId, Enum<Status>
            currentStatus);

    /**
     * 活动关闭
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result close(String activityId, Enum<Status> currentStatus);

    /**
     * 活动开启
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result open(String activityId, Enum<Status>
            currentStatus);

    /**
     * 活动执⾏
     *
     * @param activityId    活动ID
     * @param currentStatus 当前状态
     * @return 执⾏结果
     */
    public abstract Result doing(String activityId, Enum<Status>
            currentStatus);
}
